package com.wfm.leetcode.editor.cn;

import com.wfm.common.ListNode;
import org.junit.Test;

/**
 * 为什么要加一个dummy节点是因为，为了适配只有一个节点的情况【1】1
 * 因为我们要找到待删除节点的前一个节点，所以如果节点个数为1，则需要加个dummy
 */
public class BM9删除链表的倒数第n个节点O021 {

    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode dummy = new ListNode(-1);
        dummy.next = head;
        ListNode kthFromEnd = new BM8链表中倒数最后k个节点O22().getKthFromEnd(head,n + 1);
        kthFromEnd.next = kthFromEnd.next.next;
        return dummy.next;
    }

    @Test
    public void test(){
        ListNode listNode = ListNode.generalListNode(1, 5, 1);
        ListNode listNode1 = removeNthFromEnd(listNode, 2);
        ListNode.printListNode(listNode1);
    }

}
